<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /* 
            Js中的变量都是保存在栈内存中的
                    基本数据类型的值直接在栈内存中存储
                    值与值之间是独立存在。修改一个变量不会影响其他的变量。

                    对象是保存到堆内存中的，每创建一个新的对象，就会在堆内存中开辟出一个新的空间
                    而变量保存的是对象的内存地址（对象的引用）,如果两个对象保存的是同一个对象引用
                    当一个通过一个变量修改属性时，另一个也会受到影响
        */

       var obj=new Object();
       obj.name="孙悟空";
       var obj2=obj;
       //修改obj的name属性
       obj.name="猪八戒"
    //    console.log(obj.name);
    //    console.log(obj2.name);

    //设置obj2为null
    obj2=null;
    // console.log(obj);
    // console.log(obj2);
    /* obj设置为null,就是与堆内存断开连接了，但是obj没有 */
    var obj3=new Object();
    var obj4=new Object();
    obj3.name="沙和尚";
    obj4.name="沙和尚";
    console.log(obj3);
    console.log(obj4);
    /* 
        当比较两个基本数据类型的值时，就是比较值
        而比较两个引用数据类型的时候，他是比较对象的 内存地址
        如果两个对象的一摸一样的，但是地址不同，它 也会返回false.

    */


    </script>
</head>
<body>
    
</body>
</html>